package com.zhuhao.basic.myenum;

import org.junit.Test;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @Author zhuhao
 * @Date 2021/7/22 0022 16:21
 * @desc
 */
public class MyTest {

    @Test
    public void test01(){
        ColorEnum red = ColorEnum.valueOf("RED");
        System.out.println(red);
        System.out.println(red.name());

        ColorEnum[] colorEnums = ColorEnum.values();
        for (ColorEnum colorEnum : colorEnums) {
            System.out.println(colorEnum.name());
        }
        List<String> collect = Arrays.stream(colorEnums).map(colorEnum -> colorEnum.name()).collect(Collectors.toList());
    }

    /**
     * 枚举用在switch中
     */
    @Test
    public void test02(){
        ColorEnum color = ColorEnum.RED;
        System.out.println(color);

        switch (color){
            case RED:
                color = ColorEnum.GREEN;
                break;
            case BLACK:
                color = ColorEnum.BLANK;
                break;
        }

        System.out.println(color);
    }

    /**
     * 枚举中的一般定义的都是常量，get/set方法可有可无，
     * set可以设值，通过get可以获取到设置的值，直接调用常量无法获取
     * 重写toString（）方法后获取到的就是修改后的值
     * 项目中不会这么用
     */
    @Test
    public void ColorEnum02Test(){
        String name = ColorEnum02.getName(1);
        System.out.println(name);

        ColorEnum02.RED.setName("瞎几把set");

        System.out.println(ColorEnum02.RED.getName());
        System.out.println(ColorEnum02.RED);

        System.out.println(ColorEnum02.RED.toString());


        ColorEnum02.RED.print();
        ColorEnum02.BLACK.defaultVoid();
    }
}
